for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
'use strict'
const fs = require('fs')
const path = require('path')
const util = require('../util')
const chalk = require('chalk')
const output = require('../output')
var Plugins = {}
function getDirectories (srcpath) {
try {
return fs.readdirSync(srcpath).filter(function (file) {
return fs.existsSync(path.join(srcpath, file, 'package.json'))
})
} catch (e) {
// Do nothing
}
return []
Plugins.applyPlugins = function (program, pluginsDirectory) {
// Get plugins directory
pluginsDirectory = util.getPluginsDirectory(pluginsDirectory)
// Patch 'program'
program.util = util
program.output = output
// Read directories
var plugins = getDirectories(pluginsDirectory)
for (var x in plugins) {
if (!plugins.hasOwnProperty(x)) {
continue
require(path.join(pluginsDirectory, plugins[x]))(program)
Plugins.listPlugins = function () {
var pluginsDirectory = util.getPluginsDirectory()
var info = require(path.join(pluginsDirectory, plugins[x], 'package.json'))
var title = chalk.underline(info.name) + ' (' + info.version + ')'
if ('description' in info && info.description && info.description.length) {
title += '\n ' + info.description
output.log(title)
module.exports = Plugins